精品一区二区视频-日本v片-国产污网站-日本黄色一区二区-温柔女教师在线观看-久久久久久美女-97青草-亚洲情侣av-香蕉二区-2019亚洲男人天堂-椎名由奈av一区二区三区

咨詢熱線:

17661095540

聯系QQ:

2863379292

官方微信:

如何在微信小程序的頁面間傳遞數據?

微信營銷

導讀:使用全局變量 在初始化代碼的時候,小程序會讀取一個app.js的文件,在這里我們可以定義我們所需要的全局變量。});//page.js ...var app = getApp()var getFoo = app.globalData

發表日期:2019-10-20

文章編輯:興田科技

瀏覽次數:9170

標簽:

在微信小程序的開發中,我們會經常遇到頁面間數據傳遞或者相互影響的問題。在實際的開發過程中,可以通過以下幾種方法來實現。

使用全局變量

全局變量實際上是定義了一個全局的對象,并在每個頁面中引入。

在初始化代碼的時候,小程序會讀取一個app.js的文件,在這里我們可以定義我們所需要的全局變量。

//app.js ...App({globalData: {foo:'bar' }

});

然后在頁面中,可以通過getApp()方法獲取到全局應用對象,可以對全局變量進行讀取并更改:

//page.js ...var app = getApp()var getFoo = app.globalData.foo app.globalData.foo ='fun'

由于app.js在項目中是用來做基礎配置的,因此不建議將很多變量放在這里配置。一般情況下會將一些持久化的常量配置在這里,對于經常需要變動的量不建議用這個方法。

使用本地緩存

本地緩存是微信小程序提供的一個功能,可以將用戶產生的數據做本地的持久化,類似于 NoSQL,可以進行讀取和修改的操作。

那么在不同的頁面之間,如何利用它,進行數據的交互呢?

假設我們在 A 頁面保存了用戶的信息。

// pageA.js...var developer = {

name:'raymond',

gender:'male' }

wx.setStorageSync('developer', developer);

這樣做,這個數據就存在了本地。當在 B 頁面需要使用的時候,可以直接的獲取到數據池中的數據,并進行 CRUD 操作:

//pageB.js ...// Retrievevar developer = (wx.getStorageSync('developer') || [])// Update developer.name ='Jiayang' wx.setStorageSync('developer', developer);// Delete wx.removeStorage({

key:'developer' })

需要注意的是,在回到 A 頁面的時候,小程序需要重新讀取數據。這時候,可以選擇放在生命周期的onShow中對數據重新加載

父級往子級頁面(模板)的數據傳遞

我們通常會在頁面之間進行跳轉、重定向的操作。這時候,我們可以選擇將部分數據放在url里面,并在新頁面onLoad的時候進行初始化。

pageC.js ...// Navigatewx.navigateTo({url:'../pageD/pageD?name=raymond&gender=male',

})// Redirectwx.redirectTo({url:'../pageD/pageD?name=raymond&gender=male',

})

在 D 頁面中,我們可以這樣接收到到所傳進來的參數:

// pageD.js ...

page({

onl oad: function(option){

console.log(option.name +'is' +option.gender)

this.setData({option:option })

}

})

wx.navigateTo和wx.redirectTo不允許跳轉到 tab 所包含的頁面,只能用wx.switchTab跳轉。需要注意的是,wx.switchTab中的url不能傳參數。

微信新提供的wx.reLaunch接口可以傳入參數。

另外,在頁面中我們通常會用到一些組件模板,因此在父子之間也會有相應的數據傳遞。

使用name屬性,作為模板的名字。然后在這里面使用is屬性,聲明需要的使用的模板。

{{index}}: {{msg}}Time: {{time}}

然后將模板所需要的data傳入,如:

<templateis="msgItem"data="{{...item}}"/>

page({data: {item: {index:0,msg:'this is a template',time:'2016-09-15' }

}

})

傳入模板的除了變量,還可以是事件方法對象。例如,模板中的點擊事件,可以傳遞到使用模板的元素中。

通過獲取到頁面對象進行數據操作

這個方法的精髓,是通過獲取到其他頁面的對象原型,然后通過原型方法setData對當前對象管理的data進行修改,示例如下:

//pageE.js ...page({data: {index:1 }

})

當跳轉到下一個頁面 F 之后,假定在 F 中有操作需要對 E 中的數據有修改,則可以使用以下方法:

pageF.js

...

page({

changeIndexInE:function(){var pages = getCurrentpages();var prevpage = pages[pages.length -2];

prevpage.setData({

index:0 })

}

})

這個方法可以操作頁面堆棧里面的頁面的數據,可以做到讓后一級頁面對上級頁面群的數據管理。

小結

在微信小程序中有以上并且不局限于以上幾種的方式進行頁面間數據傳遞、交互,在實際應用中可以組合使用。比如說:

●一些常量,可以交由app.js管理;需要持久化的量可以放在本地保存。

●涉及到下級頁面或者模板元素的數據,可以通過傳入參數的方式傳入。

●后級頁面可以通過獲取堆棧里的頁面對象快速修改上級的數據。

在實際應用中結合使用,可以更好地管理小程序的數據。

本文如有不周到之處,可以留言進行討論。

相關推薦

更多新聞

  • 8-24

    2023

    微信營銷 / 2023-08-24

    為你的業務選擇最佳的麗水網站建設公司

    麗水網站建設公司不僅關注網站的外觀和功能,還會考慮到搜索引擎優化(SEO)的因素。他們將通過使用關鍵詞、元標記和其他優化技術來提高網站在搜索引擎結果頁面的排名。這將使您的網站更容易被潛在客戶找到,提高您的業務可見性。

    View details

  • 8-24

    2023

    微信營銷 / 2023-08-24

    云南網站開發:為您的業務搭建優秀網站的首選

    在網站上線之前,云南網站開發公司將對網站進行全面測試,以確保它的功能和性能符合預期。他們將修復任何問題并進行必要的優化,以確保網站在正式上線前具備良好的性能。

    View details

  • 8-23

    2023

    微信營銷 / 2023-08-23

    臨滄網絡推廣的重要性和技巧

    社交媒體已經成為了許多人每日活動的一部分。企業可以利用社交媒體平臺,如微博、微信、抖音等,與潛在客戶互動,展示產品或服務的優勢,并吸引更多的關注和分享。

    View details

  • 8-24

    2023

    微信營銷 / 2023-08-24

    伊犁網站優化:為您的網站提升排名和流量

    為您的網站創建有價值的、獨特的和高質量的內容。通過為訪問者提供有用的信息,您可以提高他們在您網站上停留的時間,并增加頁面瀏覽量。此外,分享有價值的內容還可以增加其他網站的鏈接,從而提高您的頁面在搜索引擎結果中的排名。

    View details

主站蜘蛛池模板: 视频| 黑龙江省| 安远县| 宁河县| 讷河市| 滕州市| 新乡县| 苍山县| 罗平县| 甘泉县| 大安市| 定襄县| 米泉市| 明光市| 印江| 怀集县| 汶川县| 奈曼旗| 大关县| 九寨沟县| 广元市| 武宣县| 垦利县| 镇赉县| 东台市| 自贡市| 河东区| 芦山县| 土默特右旗| 东乡| 珲春市| 太仓市| 桐柏县| 迁安市| 西乌珠穆沁旗| 怀宁县| 伊通| 张家界市| 东兴市| 土默特右旗| 秦皇岛市|